Index  Decision Records ADR-181: Target Release Version Column on the Decision Records Overview

ADR-181: Target Release Version Column on the Decision Records Overview

1 Status

Date Status
22-05-2026 Proposed
22-05-2026 Accepted
22-05-2026 In-Progress
22-05-2026 Implemented

2 Context

The Decision Records Overview page currently shows, for each record, the columns: #, Type, Status, Title, Start Date, Target Date, Owner. The first three were introduced by adr-170-introduce-decision-records and adr-172-current-status-marker; Start Date was added by adr-178-overview-start-date; Target Date and Owner remain reserved placeholders.

A reader scanning the overview cannot tell from the table which release a given record is scheduled for. That information already exists in every decision record: the Software Versions section carries a two-column table whose Software Version Category column includes a Target Release Version row, and whose Software Version ID column holds the actual version string (e.g., 0.3.1, 0.4.0). Authoring a third, hand-maintained version field on the overview row would duplicate this information and drift out of sync. Deriving it during parsing keeps a single source of truth in the existing table.

3 Decision

Add a new Release column to the Decision Records Overview page, positioned between the existing Target Date and Owner columns. Populate each row with the decision record's Target Release Version, extracted from the record's Software Versions section during parsing and exposed as a target_release_version attribute on the Decision instance.

3.1 Header rendering

The column header renders as <th title="Target Release Version">Release</th>. The visible label is the short word Release so the overview table stays compact; hovering reveals the full meaning Target Release Version via the standard HTML title tooltip. This is the first overview header to carry a title attribute; future short-label columns may follow the same pattern.

3.2 Extraction rule

For a Decision Record, target_release_version is the value found by the following lookup:

  1. Locate the Software Versions section by its heading text (case-sensitive, any heading level), using the same locate-by-heading approach already used by extract_current_status and extract_start_date (the find_section_table helper).
  2. Within that section, take the first markdown table.
  3. In that table, identify the Software Version Category column and the Software Version ID column by their header text, case-sensitive, not by column position.
  4. Find the row whose Software Version Category cell, after stripping surrounding whitespace, equals Target Release Version exactly.
  5. Take the trimmed value of that row's Software Version ID cell as the attribute. An empty cell results in nil.

If the section is absent, if the table is absent, if either column header is not found, or if no row matches Target Release Version, the attribute is nil.

The version value is treated as an opaque string. No SemVer parsing, no validation, no normalisation: whatever the author wrote in the Software Version ID cell (e.g., 0.4.0, n/a, TBD) is what appears in the column.

3.3 Rendering

For each decision row, the new column cell carries target_release_version as plain text. When the attribute is nil, the cell renders empty.

4 Scope

Item Status Start Date Target Date Description
Requirements Done 22-05-2026 22-05-2026 New SRS items in srs.md covering: the target_release_version attribute on a Decision Record; the extraction rule (Software Versions section, table lookup by column header, row lookup by exact match on Target Release Version); the empty-cell fallback when no value is found; rendering of the attribute in a new Release column on the Decision Records Overview; the title="Target Release Version" attribute on the column header
Code Done 22-05-2026 22-05-2026 Add a target_release_version accessor on Decision; add an extract_target_release_version method that reuses find_section_table to locate the Software Versions table and reads the Software Version ID cell of the row whose Software Version Category is Target Release Version; wire the extractor into DocFabric#create_decision alongside extract_current_status and extract_start_date; insert the new Release column between Target Date and Owner in decisions_overview.rb, emitting the <th> with a title attribute and the <td> with the attribute value or empty
Tests Done 22-05-2026 22-05-2026 End-to-end tests under spec/e2e/decisions_spec.rb: extraction reads the Target Release Version row from the Software Versions table; extraction works regardless of the column order in the Software Versions table (lookup by header text); extraction returns nil when the section is missing; extraction returns nil when the row is missing; extraction returns nil when the cell is empty; the rendered Release column carries the formatted value and is empty when undefined; the column header includes the title="Target Release Version" attribute; the column is placed between Target Date and Owner

5 Out of Scope

6 Consequences

6.1 Positive

6.2 Negative

6.3 Neutral

7 Alternatives Considered

8 Software Versions

Software Version Category Software Version ID
Latest Released Version 0.3.1
Issue Found in Version 0.4.0
Target Release Version 0.4.0

9 Affected Documents

# Proposed Text Req-ID
1 The software shall expose a Target Release Version attribute on each Decision Record, computed by locating the Decision Record's Software Versions section, finding the row of its table whose Software Version Category cell equals "Target Release Version", and taking the value of that row's Software Version ID cell. SRS-066
2 The software shall identify the Software Version Category column and the Software Version ID column of a Decision Record's Software Versions table by their header text, case-sensitive, and not by column position. SRS-067
3 The software shall identify the Target Release Version row of a Decision Record's Software Versions table by an exact, case-sensitive match against its Software Version Category cell after stripping surrounding whitespace. SRS-068
4 When a Decision Record's Software Versions section, the table within it, the Software Version Category or Software Version ID column, the Target Release Version row, or the cell value is missing or empty, the Target Release Version attribute of that Decision Record shall be undefined. SRS-069
5 The Decision Records Overview page shall include a "Version" column positioned between the "Target Date" and "Owner" columns, displaying each decision record's Target Release Version attribute as plain text. The column header shall carry an HTML title attribute with the value "Target Release Version". The cell shall be empty when the attribute is undefined. SRS-070

10 References

11 Review Evidences